package com.chagee.store.operation.server.model.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.*;
import com.alibaba.excel.enums.BooleanEnum;
import com.alibaba.excel.enums.poi.*;
import com.chagee.store.operation.api.enums.OrderAcceptanceTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 导出打烊工单
 * @Author : hk
 * @Date : 2024/9/13
 */
@Data
@ExcelTarget("打烊工单")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ColumnWidth(20) //列宽
@HeadRowHeight(25) //表头行高
@ContentRowHeight(25) //数据行高
@HeadStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.DEFAULT, fillForegroundColor = 9)
@HeadFontStyle(fontName = "宋体", fontHeightInPoints = 12, bold = BooleanEnum.FALSE)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment= VerticalAlignmentEnum.CENTER)
public class WorkOrderExcelVO implements Serializable {
	private static final long serialVersionUID = 2137272029465619891L;

	/**
	 * 工单表id
	 */
	@ExcelIgnore
	private Long id;

	/**
	 * 工单编号
	 */
	@ExcelProperty(value = {"${title}","工单编号"})
	private String workOrderNumber;

	/**
	 * 门店编号
	 */
	@ExcelProperty(value = {"${title}","门店编号"})
	private String storeCode;

	/**
	 * 门店名称
	 */
	@ExcelProperty(value = {"${title}","门店名称"})
	private String storeName;

	/**
	 * 单据类型,0三方打烊
	 */
	@ExcelProperty(value = {"${title}","单据类型"})
	private String documentType;

	/**
	 * 单据状态
	 * PENDING_ORDERS(0, "待接单"),
	 * 	TO_BE_EXECUTED(1, "待执行"),
	 * 	IN_PROGRESS(2, "执行中"),
	 * 	TO_BE_ACCEPTED(3, "待验收"),
	 * 	COMPLETED(4, "已完成"),
	 * 	EXPIRED(5, "已过期");
	 */
	@ExcelProperty(value = {"${title}","单据状态"})
	private String documentStatus;

	/**
	 * 工单评分
	 */
	@ExcelProperty(value = {"${title}","工单评分"})
	private String documentScore;

	/**
	 * 不合格原因
	 */
	@ExcelProperty(value = {"${title}","不合格原因"})
	private String remark;
	/**
	 * 不合格图片
	 */
	//@ExcelProperty(value = {"${title}","不合格图片"})
	@ExcelIgnore
	private String remarkPicture;
	/**
	 * 计费开始时间
	 */
	@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
	@ExcelProperty(value = {"${title}","计费开始时间"})
	private Date billingStartDate;
	/**
	 * 结算底价-不可为空
	 */
	@ExcelProperty(value = {"${title}","结算底价"})
	private String floorPrice;
	/**
	 * 结算底价(夜间)-可以为空
	 */
	//@Excel(name = "结算底价(夜间)", width = 20)
	@ExcelIgnore
	private String nightFloorPrice;

	/**
	 * 3.0产品销售情况
	 */
	@ExcelProperty(value = {"${title}","3.0产品销售情况"})
	private String productThridSalesStatus;

	/**
	 * 开早验收提交方式
	 * @see OrderAcceptanceTypeEnum
	 */
	@ExcelProperty(value = {"${title}","开早验收提交方式"})
	private String acceptanceType;

	/**
	 * 是否合格
	 */
	@ExcelProperty(value = {"${title}","是否合格"})
	private String isQualified;

	/**
	 * 接单人
	 */
	@ExcelProperty(value = {"${title}","接单人"})
	private String receiverAndReceiverMobile;


	/**
	 * 供应商
	 */
	@ExcelProperty(value = {"${title}","供应商"})
	private String supplier;

	/**
	 * 加盟商
	 */
	@ExcelProperty(value = {"${title}","加盟商"})
	private String businessName;

	/**
	 * 店铺性质
	 */
	@ExcelProperty(value = {"${title}","店铺性质"})
	private String storeCategory;



	/**
	 * 所属子公司名称
	 */
	@ExcelProperty(value = {"${title}","所属子公司名称"})
	private String companyName;

	/**
	 * 是否曾申诉
	 */
	@ExcelProperty(value = {"${title}","是否曾申诉"})
	private String appealFlag;

	/**
	 * 创建时间
	 */
	@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
	@ExcelProperty(value = {"${title}","创建时间"})
	private Date createTime;


	/**
	 * 更新时间
	 */
	@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
	@ExcelProperty(value = {"${title}","更新时间"})
	private Date updateTime;


}
